<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "https://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" lang="en-US">
<head>
<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
<meta http-equiv="X-UA-Compatible" content="IE=11"/>
<meta name="generator" content="Doxygen 1.9.5"/>
<meta name="viewport" content="width=device-width, initial-scale=1"/>
<title>VectSharp: VectSharp.Canvas.SKMultiLayerRenderCanvas Class Reference</title>
<link href="tabs.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="jquery.js"></script>
<script type="text/javascript" src="dynsections.js"></script>
<link href="navtree.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="resize.js"></script>
<script type="text/javascript" src="navtreedata.js"></script>
<script type="text/javascript" src="navtree.js"></script>
<link href="search/search.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="search/searchdata.js"></script>
<script type="text/javascript" src="search/search.js"></script>
<link href="doxygen.css" rel="stylesheet" type="text/css" />
<link href="Doxy.css" rel="stylesheet" type="text/css"/>
</head>
<body>
<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
<div id="titlearea">
<table cellspacing="0" cellpadding="0">
 <tbody>
 <tr id="projectrow">
  <td id="projectlogo"><img alt="Logo" src="icon.svg"/></td>
  <td id="projectalign">
   <div id="projectname">VectSharp<span id="projectnumber">&#160;2.6.1</span>
   </div>
   <div id="projectbrief">A light library for C# vector graphics</div>
  </td>
 </tr>
 </tbody>
</table>
</div>
<!-- end header part -->
<!-- Generated by Doxygen 1.9.5 -->
<script type="text/javascript">
/* @license magnet:?xt=urn:btih:d3d9a9a6595521f9666a5e94cc830dab83b65699&amp;dn=expat.txt MIT */
var searchBox = new SearchBox("searchBox", "search/",'.html');
/* @license-end */
</script>
<script type="text/javascript" src="menudata.js"></script>
<script type="text/javascript" src="menu.js"></script>
<script type="text/javascript">
/* @license magnet:?xt=urn:btih:d3d9a9a6595521f9666a5e94cc830dab83b65699&amp;dn=expat.txt MIT */
$(function() {
  initMenu('',true,false,'search.php','Search');
  $(document).ready(function() { init_search(); });
});
/* @license-end */
</script>
<div id="main-nav"></div>
</div><!-- top -->
<div id="side-nav" class="ui-resizable side-nav-resizable">
  <div id="nav-tree">
    <div id="nav-tree-contents">
      <div id="nav-sync" class="sync"></div>
    </div>
  </div>
  <div id="splitbar" style="-moz-user-select:none;" 
       class="ui-resizable-handle">
  </div>
</div>
<script type="text/javascript">
/* @license magnet:?xt=urn:btih:d3d9a9a6595521f9666a5e94cc830dab83b65699&amp;dn=expat.txt MIT */
$(document).ready(function(){initNavTree('class_vect_sharp_1_1_canvas_1_1_s_k_multi_layer_render_canvas.html',''); initResizable(); });
/* @license-end */
</script>
<div id="doc-content">
<!-- window showing the filter options -->
<div id="MSearchSelectWindow"
     onmouseover="return searchBox.OnSearchSelectShow()"
     onmouseout="return searchBox.OnSearchSelectHide()"
     onkeydown="return searchBox.OnSearchSelectKey(event)">
</div>

<!-- iframe showing the search results (closed by default) -->
<div id="MSearchResultsWindow">
<div id="MSearchResults">
<div class="SRPage">
<div id="SRIndex">
<div id="SRResults"></div>
<div class="SRStatus" id="Loading">Loading...</div>
<div class="SRStatus" id="Searching">Searching...</div>
<div class="SRStatus" id="NoMatches">No Matches</div>
</div>
</div>
</div>
</div>

<div class="header">
  <div class="summary">
<a href="#pub-methods">Public Member Functions</a> &#124;
<a href="#pub-attribs">Public Attributes</a> &#124;
<a href="#properties">Properties</a> &#124;
<a href="class_vect_sharp_1_1_canvas_1_1_s_k_multi_layer_render_canvas-members.html">List of all members</a>  </div>
  <div class="headertitle"><div class="title">VectSharp.Canvas.SKMultiLayerRenderCanvas Class Reference</div></div>
</div><!--header-->
<div class="contents">

<p>Represents a multi-threaded, triple-buffered canvas on which the image is drawn using SkiaSharp.   
 <a href="class_vect_sharp_1_1_canvas_1_1_s_k_multi_layer_render_canvas.html#details">More...</a></p>
<div class="dynheader">
Inheritance diagram for VectSharp.Canvas.SKMultiLayerRenderCanvas:</div>
<div class="dyncontent">
<div class="center"><img src="class_vect_sharp_1_1_canvas_1_1_s_k_multi_layer_render_canvas__inherit__graph.png" border="0" usemap="#a_vect_sharp_8_canvas_8_s_k_multi_layer_render_canvas_inherit__map" alt="Inheritance graph"/></div>
<map name="a_vect_sharp_8_canvas_8_s_k_multi_layer_render_canvas_inherit__map" id="a_vect_sharp_8_canvas_8_s_k_multi_layer_render_canvas_inherit__map">
<area shape="rect" title="Represents a multi&#45;threaded, triple&#45;buffered canvas on which the image is drawn using SkiaSharp." alt="" coords="111,93,290,133"/>
<area shape="rect" title=" " alt="" coords="5,5,132,45"/>
<area shape="rect" title=" " alt="" coords="156,13,245,38"/>
<area shape="rect" title=" " alt="" coords="269,13,396,38"/>
</map>
<center><span class="legend">[<a target="top" href="graph_legend.html">legend</a>]</span></center></div>
<table class="memberdecls">
<tr class="heading"><td colspan="2"><h2 class="groupheader"><a id="pub-methods" name="pub-methods"></a>
Public Member Functions</h2></td></tr>
<tr class="memitem:a00243775be8cd6bb94efc35791b26c71"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="class_vect_sharp_1_1_canvas_1_1_s_k_multi_layer_render_canvas.html#a00243775be8cd6bb94efc35791b26c71">SKMultiLayerRenderCanvas</a> (<a class="el" href="class_vect_sharp_1_1_document.html">Document</a> document, <a class="el" href="struct_vect_sharp_1_1_colour.html">Colour</a> backgroundColour, double width, double height, List&lt; <a class="el" href="class_vect_sharp_1_1_canvas_1_1_s_k_render_action.html">SKRenderAction</a> &gt; layerTransforms=null)</td></tr>
<tr class="memdesc:a00243775be8cd6bb94efc35791b26c71"><td class="mdescLeft">&#160;</td><td class="mdescRight">Create a new <a class="el" href="class_vect_sharp_1_1_canvas_1_1_s_k_multi_layer_render_canvas.html" title="Represents a multi-threaded, triple-buffered canvas on which the image is drawn using SkiaSharp.">SKMultiLayerRenderCanvas</a> from a <a class="el" href="class_vect_sharp_1_1_document.html" title="Represents a collection of pages.">Document</a>, where each page represents a layer.   <a href="class_vect_sharp_1_1_canvas_1_1_s_k_multi_layer_render_canvas.html#a00243775be8cd6bb94efc35791b26c71">More...</a><br /></td></tr>
<tr class="separator:a00243775be8cd6bb94efc35791b26c71"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a9a5fb8009c0eacdcfea4667f2dd21f1e"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="class_vect_sharp_1_1_canvas_1_1_s_k_multi_layer_render_canvas.html#a9a5fb8009c0eacdcfea4667f2dd21f1e">SKMultiLayerRenderCanvas</a> (IEnumerable&lt; <a class="el" href="class_vect_sharp_1_1_page.html">Page</a> &gt; layers, <a class="el" href="struct_vect_sharp_1_1_colour.html">Colour</a> backgroundColour, double width, double height, List&lt; <a class="el" href="class_vect_sharp_1_1_canvas_1_1_s_k_render_action.html">SKRenderAction</a> &gt; layerTransforms=null)</td></tr>
<tr class="memdesc:a9a5fb8009c0eacdcfea4667f2dd21f1e"><td class="mdescLeft">&#160;</td><td class="mdescRight">Create a new <a class="el" href="class_vect_sharp_1_1_canvas_1_1_s_k_multi_layer_render_canvas.html" title="Represents a multi-threaded, triple-buffered canvas on which the image is drawn using SkiaSharp.">SKMultiLayerRenderCanvas</a> from a collection of <a class="el" href="class_vect_sharp_1_1_page.html" title="Represents a Graphics object with a width and height.">Page</a>s, each representing a layer.   <a href="class_vect_sharp_1_1_canvas_1_1_s_k_multi_layer_render_canvas.html#a9a5fb8009c0eacdcfea4667f2dd21f1e">More...</a><br /></td></tr>
<tr class="separator:a9a5fb8009c0eacdcfea4667f2dd21f1e"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a777e28bd741c4a2f18f223f7cc628bbf"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="class_vect_sharp_1_1_canvas_1_1_s_k_multi_layer_render_canvas.html#a777e28bd741c4a2f18f223f7cc628bbf">SKMultiLayerRenderCanvas</a> (List&lt; <a class="el" href="class_vect_sharp_1_1_canvas_1_1_s_k_render_context.html">SKRenderContext</a> &gt; contents, List&lt; <a class="el" href="class_vect_sharp_1_1_canvas_1_1_s_k_render_action.html">SKRenderAction</a> &gt; contentTransforms, <a class="el" href="struct_vect_sharp_1_1_colour.html">Colour</a> backgroundColour, double width, double height)</td></tr>
<tr class="memdesc:a777e28bd741c4a2f18f223f7cc628bbf"><td class="mdescLeft">&#160;</td><td class="mdescRight">Create a new <a class="el" href="class_vect_sharp_1_1_canvas_1_1_s_k_multi_layer_render_canvas.html" title="Represents a multi-threaded, triple-buffered canvas on which the image is drawn using SkiaSharp.">SKMultiLayerRenderCanvas</a> from a list of SKRenderContexts, each representing a layer.   <a href="class_vect_sharp_1_1_canvas_1_1_s_k_multi_layer_render_canvas.html#a777e28bd741c4a2f18f223f7cc628bbf">More...</a><br /></td></tr>
<tr class="separator:a777e28bd741c4a2f18f223f7cc628bbf"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a84c5f8dc4c4351723414e55fa01eafe7"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="class_vect_sharp_1_1_canvas_1_1_s_k_multi_layer_render_canvas.html#a84c5f8dc4c4351723414e55fa01eafe7">UpdateWith</a> (List&lt; <a class="el" href="class_vect_sharp_1_1_canvas_1_1_s_k_render_context.html">SKRenderContext</a> &gt; contents, List&lt; <a class="el" href="class_vect_sharp_1_1_canvas_1_1_s_k_render_action.html">SKRenderAction</a> &gt; contentTransforms, <a class="el" href="struct_vect_sharp_1_1_colour.html">Colour</a> backgroundColour, double width, double height)</td></tr>
<tr class="memdesc:a84c5f8dc4c4351723414e55fa01eafe7"><td class="mdescLeft">&#160;</td><td class="mdescRight">Replace the contents of the <a class="el" href="class_vect_sharp_1_1_canvas_1_1_s_k_multi_layer_render_canvas.html" title="Represents a multi-threaded, triple-buffered canvas on which the image is drawn using SkiaSharp.">SKMultiLayerRenderCanvas</a> with the specified layers.   <a href="class_vect_sharp_1_1_canvas_1_1_s_k_multi_layer_render_canvas.html#a84c5f8dc4c4351723414e55fa01eafe7">More...</a><br /></td></tr>
<tr class="separator:a84c5f8dc4c4351723414e55fa01eafe7"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a2afc05715ff7c9e4cb273943d70939ed"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="class_vect_sharp_1_1_canvas_1_1_s_k_multi_layer_render_canvas.html#a2afc05715ff7c9e4cb273943d70939ed">UpdateLayer</a> (int layer, <a class="el" href="class_vect_sharp_1_1_canvas_1_1_s_k_render_context.html">SKRenderContext</a> newContent, <a class="el" href="class_vect_sharp_1_1_canvas_1_1_s_k_render_action.html">SKRenderAction</a> newTransform)</td></tr>
<tr class="memdesc:a2afc05715ff7c9e4cb273943d70939ed"><td class="mdescLeft">&#160;</td><td class="mdescRight">Replace a single layer with the specified content.   <a href="class_vect_sharp_1_1_canvas_1_1_s_k_multi_layer_render_canvas.html#a2afc05715ff7c9e4cb273943d70939ed">More...</a><br /></td></tr>
<tr class="separator:a2afc05715ff7c9e4cb273943d70939ed"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a8bc4e8c89dcb02f5beaa0a18c4c94bb5"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="class_vect_sharp_1_1_canvas_1_1_s_k_multi_layer_render_canvas.html#a8bc4e8c89dcb02f5beaa0a18c4c94bb5">AddLayer</a> (<a class="el" href="class_vect_sharp_1_1_canvas_1_1_s_k_render_context.html">SKRenderContext</a> newContent, <a class="el" href="class_vect_sharp_1_1_canvas_1_1_s_k_render_action.html">SKRenderAction</a> newTransform)</td></tr>
<tr class="memdesc:a8bc4e8c89dcb02f5beaa0a18c4c94bb5"><td class="mdescLeft">&#160;</td><td class="mdescRight">Add a new layer to the image.   <a href="class_vect_sharp_1_1_canvas_1_1_s_k_multi_layer_render_canvas.html#a8bc4e8c89dcb02f5beaa0a18c4c94bb5">More...</a><br /></td></tr>
<tr class="separator:a8bc4e8c89dcb02f5beaa0a18c4c94bb5"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a6aaf18105ecb0af2b80c52f576d224d9"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="class_vect_sharp_1_1_canvas_1_1_s_k_multi_layer_render_canvas.html#a6aaf18105ecb0af2b80c52f576d224d9">InsertLayer</a> (int index, <a class="el" href="class_vect_sharp_1_1_canvas_1_1_s_k_render_context.html">SKRenderContext</a> newContent, <a class="el" href="class_vect_sharp_1_1_canvas_1_1_s_k_render_action.html">SKRenderAction</a> newTransform)</td></tr>
<tr class="memdesc:a6aaf18105ecb0af2b80c52f576d224d9"><td class="mdescLeft">&#160;</td><td class="mdescRight">Insert a new layer at the specified index.   <a href="class_vect_sharp_1_1_canvas_1_1_s_k_multi_layer_render_canvas.html#a6aaf18105ecb0af2b80c52f576d224d9">More...</a><br /></td></tr>
<tr class="separator:a6aaf18105ecb0af2b80c52f576d224d9"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a474ef13fd5ff3c54f679836ffd45af95"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="class_vect_sharp_1_1_canvas_1_1_s_k_multi_layer_render_canvas.html#a474ef13fd5ff3c54f679836ffd45af95">RemoveLayer</a> (int layer)</td></tr>
<tr class="memdesc:a474ef13fd5ff3c54f679836ffd45af95"><td class="mdescLeft">&#160;</td><td class="mdescRight">Remove the specified layer from the image.   <a href="class_vect_sharp_1_1_canvas_1_1_s_k_multi_layer_render_canvas.html#a474ef13fd5ff3c54f679836ffd45af95">More...</a><br /></td></tr>
<tr class="separator:a474ef13fd5ff3c54f679836ffd45af95"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ad13a708bdb0b9a7d533f78b8eb931260"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="class_vect_sharp_1_1_canvas_1_1_s_k_multi_layer_render_canvas.html#ad13a708bdb0b9a7d533f78b8eb931260">SwitchLayers</a> (int layer1, int layer2)</td></tr>
<tr class="memdesc:ad13a708bdb0b9a7d533f78b8eb931260"><td class="mdescLeft">&#160;</td><td class="mdescRight">Switch the position of the two specified layers.   <a href="class_vect_sharp_1_1_canvas_1_1_s_k_multi_layer_render_canvas.html#ad13a708bdb0b9a7d533f78b8eb931260">More...</a><br /></td></tr>
<tr class="separator:ad13a708bdb0b9a7d533f78b8eb931260"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a65033e30e6cb9cf268c71f7a9949770e"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="class_vect_sharp_1_1_canvas_1_1_s_k_multi_layer_render_canvas.html#a65033e30e6cb9cf268c71f7a9949770e">MoveLayer</a> (int oldIndex, int newIndex)</td></tr>
<tr class="memdesc:a65033e30e6cb9cf268c71f7a9949770e"><td class="mdescLeft">&#160;</td><td class="mdescRight">Move the specified layer to the specified position, shifting all other layers as necessary.   <a href="class_vect_sharp_1_1_canvas_1_1_s_k_multi_layer_render_canvas.html#a65033e30e6cb9cf268c71f7a9949770e">More...</a><br /></td></tr>
<tr class="separator:a65033e30e6cb9cf268c71f7a9949770e"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a4ca16a4f659a0fd5411c3d713aab4b4d"><td class="memItemLeft" align="right" valign="top">RenderTargetBitmap&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="class_vect_sharp_1_1_canvas_1_1_s_k_multi_layer_render_canvas.html#a4ca16a4f659a0fd5411c3d713aab4b4d">RenderAtResolution</a> (int width, int height, SKColor? background=null)</td></tr>
<tr class="memdesc:a4ca16a4f659a0fd5411c3d713aab4b4d"><td class="mdescLeft">&#160;</td><td class="mdescRight">Render the image to a bitmap at the specified resolution.   <a href="class_vect_sharp_1_1_canvas_1_1_s_k_multi_layer_render_canvas.html#a4ca16a4f659a0fd5411c3d713aab4b4d">More...</a><br /></td></tr>
<tr class="separator:a4ca16a4f659a0fd5411c3d713aab4b4d"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a1701ed51368b6dc5bb771b5ea858e4ee"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="class_vect_sharp_1_1_canvas_1_1_s_k_multi_layer_render_canvas.html#a1701ed51368b6dc5bb771b5ea858e4ee">InvalidateDirty</a> ()</td></tr>
<tr class="memdesc:a1701ed51368b6dc5bb771b5ea858e4ee"><td class="mdescLeft">&#160;</td><td class="mdescRight">Invalidate the contents of the canvas, forcing it to redraw itself.   <a href="class_vect_sharp_1_1_canvas_1_1_s_k_multi_layer_render_canvas.html#a1701ed51368b6dc5bb771b5ea858e4ee">More...</a><br /></td></tr>
<tr class="separator:a1701ed51368b6dc5bb771b5ea858e4ee"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a28e9f0cfe4fa1286ac9b90b8ae33b2d2"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="class_vect_sharp_1_1_canvas_1_1_s_k_multi_layer_render_canvas.html#a28e9f0cfe4fa1286ac9b90b8ae33b2d2">InvalidateZIndex</a> ()</td></tr>
<tr class="memdesc:a28e9f0cfe4fa1286ac9b90b8ae33b2d2"><td class="mdescLeft">&#160;</td><td class="mdescRight">Invalidate the contents of the canvas, specifying that the order of the layers has changed.   <a href="class_vect_sharp_1_1_canvas_1_1_s_k_multi_layer_render_canvas.html#a28e9f0cfe4fa1286ac9b90b8ae33b2d2">More...</a><br /></td></tr>
<tr class="separator:a28e9f0cfe4fa1286ac9b90b8ae33b2d2"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a6bc35a6235e3f24da0d2c27d5868c587"><td class="memItemLeft" align="right" valign="top">override void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="class_vect_sharp_1_1_canvas_1_1_s_k_multi_layer_render_canvas.html#a6bc35a6235e3f24da0d2c27d5868c587">Render</a> (DrawingContext context)</td></tr>
<tr class="separator:a6bc35a6235e3f24da0d2c27d5868c587"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ab28d9c9dc4156695119b583fcffcc3da"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="class_vect_sharp_1_1_canvas_1_1_s_k_multi_layer_render_canvas.html#ab28d9c9dc4156695119b583fcffcc3da">Dispose</a> ()</td></tr>
<tr class="separator:ab28d9c9dc4156695119b583fcffcc3da"><td class="memSeparator" colspan="2">&#160;</td></tr>
</table><table class="memberdecls">
<tr class="heading"><td colspan="2"><h2 class="groupheader"><a id="pub-attribs" name="pub-attribs"></a>
Public Attributes</h2></td></tr>
<tr class="memitem:aab220bda90e3a0c36f27b87bfbeff6f0"><td class="memItemLeft" align="right" valign="top">List&lt; List&lt; <a class="el" href="class_vect_sharp_1_1_canvas_1_1_s_k_render_action.html">SKRenderAction</a> &gt; &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="class_vect_sharp_1_1_canvas_1_1_s_k_multi_layer_render_canvas.html#aab220bda90e3a0c36f27b87bfbeff6f0">RenderActions</a></td></tr>
<tr class="memdesc:aab220bda90e3a0c36f27b87bfbeff6f0"><td class="mdescLeft">&#160;</td><td class="mdescRight">The list of render actions. Each element in this list is itself a list, containing the actions that correspond to a layer in the image.   <a href="class_vect_sharp_1_1_canvas_1_1_s_k_multi_layer_render_canvas.html#aab220bda90e3a0c36f27b87bfbeff6f0">More...</a><br /></td></tr>
<tr class="separator:aab220bda90e3a0c36f27b87bfbeff6f0"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:aa8cabc258828463f73b9d90612d9abee"><td class="memItemLeft" align="right" valign="top">List&lt; <a class="el" href="class_vect_sharp_1_1_canvas_1_1_s_k_render_action.html">SKRenderAction</a> &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="class_vect_sharp_1_1_canvas_1_1_s_k_multi_layer_render_canvas.html#aa8cabc258828463f73b9d90612d9abee">LayerTransforms</a></td></tr>
<tr class="memdesc:aa8cabc258828463f73b9d90612d9abee"><td class="mdescLeft">&#160;</td><td class="mdescRight">The list of transforms associated with each layer.   <a href="class_vect_sharp_1_1_canvas_1_1_s_k_multi_layer_render_canvas.html#aa8cabc258828463f73b9d90612d9abee">More...</a><br /></td></tr>
<tr class="separator:aa8cabc258828463f73b9d90612d9abee"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a7ff6c67552e1715308850a5bba174941"><td class="memItemLeft" align="right" valign="top">object&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="class_vect_sharp_1_1_canvas_1_1_s_k_multi_layer_render_canvas.html#a7ff6c67552e1715308850a5bba174941">RenderLock</a> = new object()</td></tr>
<tr class="memdesc:a7ff6c67552e1715308850a5bba174941"><td class="mdescLeft">&#160;</td><td class="mdescRight">A lock for the rendering loop. The public methods of this class already lock on this, but you may need it if you want to directly manipulate the contents of the canvas.   <a href="class_vect_sharp_1_1_canvas_1_1_s_k_multi_layer_render_canvas.html#a7ff6c67552e1715308850a5bba174941">More...</a><br /></td></tr>
<tr class="separator:a7ff6c67552e1715308850a5bba174941"><td class="memSeparator" colspan="2">&#160;</td></tr>
</table><table class="memberdecls">
<tr class="heading"><td colspan="2"><h2 class="groupheader"><a id="properties" name="properties"></a>
Properties</h2></td></tr>
<tr class="memitem:a4fd73dc712c4f90ed8e00412eb50bdd2"><td class="memItemLeft" align="right" valign="top">double&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="class_vect_sharp_1_1_canvas_1_1_s_k_multi_layer_render_canvas.html#a4fd73dc712c4f90ed8e00412eb50bdd2">PageWidth</a><code> [get, set]</code></td></tr>
<tr class="memdesc:a4fd73dc712c4f90ed8e00412eb50bdd2"><td class="mdescLeft">&#160;</td><td class="mdescRight">The width of the page that is rendered on this canvas.   <a href="class_vect_sharp_1_1_canvas_1_1_s_k_multi_layer_render_canvas.html#a4fd73dc712c4f90ed8e00412eb50bdd2">More...</a><br /></td></tr>
<tr class="separator:a4fd73dc712c4f90ed8e00412eb50bdd2"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:aabe2d24ee767ba8e7bac57f98d88a0ef"><td class="memItemLeft" align="right" valign="top">double&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="class_vect_sharp_1_1_canvas_1_1_s_k_multi_layer_render_canvas.html#aabe2d24ee767ba8e7bac57f98d88a0ef">PageHeight</a><code> [get, set]</code></td></tr>
<tr class="memdesc:aabe2d24ee767ba8e7bac57f98d88a0ef"><td class="mdescLeft">&#160;</td><td class="mdescRight">The height of the page that is rendered on this canvas.   <a href="class_vect_sharp_1_1_canvas_1_1_s_k_multi_layer_render_canvas.html#aabe2d24ee767ba8e7bac57f98d88a0ef">More...</a><br /></td></tr>
<tr class="separator:aabe2d24ee767ba8e7bac57f98d88a0ef"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a477d90bbd72a0656f8b05cb436ef2e91"><td class="memItemLeft" align="right" valign="top">RelativePoint&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="class_vect_sharp_1_1_canvas_1_1_s_k_multi_layer_render_canvas.html#a477d90bbd72a0656f8b05cb436ef2e91">ClipMargin</a> = new RelativePoint(0, 0, RelativeUnit.Absolute)<code> [get, set]</code></td></tr>
<tr class="memdesc:a477d90bbd72a0656f8b05cb436ef2e91"><td class="mdescLeft">&#160;</td><td class="mdescRight">Defines an overdraw margin for the clipping area. Set this to a larger value if quickly moving the canvas around (e.g. in a ZoomBorder) causes the edge of the image to disappear for a few milliseconds and that annoys you. If RelativePoint.Unit is set to RelativeUnit.Absolute, the value corresponds to units on the <a class="el" href="class_vect_sharp_1_1_page.html" title="Represents a Graphics object with a width and height.">VectSharp.Page</a>; if it is set to RelativeUnit.Relative, it corresponds to a proportion of the visible area.   <a href="class_vect_sharp_1_1_canvas_1_1_s_k_multi_layer_render_canvas.html#a477d90bbd72a0656f8b05cb436ef2e91">More...</a><br /></td></tr>
<tr class="separator:a477d90bbd72a0656f8b05cb436ef2e91"><td class="memSeparator" colspan="2">&#160;</td></tr>
</table>
<a name="details" id="details"></a><h2 class="groupheader">Detailed Description</h2>
<div class="textblock"><p >Represents a multi-threaded, triple-buffered canvas on which the image is drawn using SkiaSharp.  </p>

<p class="definition">Definition at line <a class="el" href="_s_k_multi_layer_render_canvas_8cs_source.html#l00039">39</a> of file <a class="el" href="_s_k_multi_layer_render_canvas_8cs_source.html">SKMultiLayerRenderCanvas.cs</a>.</p>
</div><h2 class="groupheader">Constructor &amp; Destructor Documentation</h2>
<a id="a00243775be8cd6bb94efc35791b26c71" name="a00243775be8cd6bb94efc35791b26c71"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a00243775be8cd6bb94efc35791b26c71">&#9670;&#160;</a></span>SKMultiLayerRenderCanvas() <span class="overload">[1/3]</span></h2>

<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">VectSharp.Canvas.SKMultiLayerRenderCanvas.SKMultiLayerRenderCanvas </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="class_vect_sharp_1_1_document.html">Document</a>&#160;</td>
          <td class="paramname"><em>document</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype"><a class="el" href="struct_vect_sharp_1_1_colour.html">Colour</a>&#160;</td>
          <td class="paramname"><em>backgroundColour</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">double&#160;</td>
          <td class="paramname"><em>width</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">double&#160;</td>
          <td class="paramname"><em>height</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">List&lt; <a class="el" href="class_vect_sharp_1_1_canvas_1_1_s_k_render_action.html">SKRenderAction</a> &gt;&#160;</td>
          <td class="paramname"><em>layerTransforms</em> = <code>null</code>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
</div><div class="memdoc">

<p>Create a new <a class="el" href="class_vect_sharp_1_1_canvas_1_1_s_k_multi_layer_render_canvas.html" title="Represents a multi-threaded, triple-buffered canvas on which the image is drawn using SkiaSharp.">SKMultiLayerRenderCanvas</a> from a <a class="el" href="class_vect_sharp_1_1_document.html" title="Represents a collection of pages.">Document</a>, where each page represents a layer.  </p>
<dl class="params"><dt>Parameters</dt><dd>
  <table class="params">
    <tr><td class="paramname">document</td><td>The document containing the layers as <a class="el" href="class_vect_sharp_1_1_page.html" title="Represents a Graphics object with a width and height.">Page</a>s.</td></tr>
    <tr><td class="paramname">layerTransforms</td><td>A list of transforms associated with each layer. This list should contain the same number of elements as the number of pages in <em>document</em> . This is useful to manipulate the position of each layer individually. If this is null, an identity transform is applied to each layer.</td></tr>
    <tr><td class="paramname">backgroundColour</td><td>The background colour of the canvas.</td></tr>
    <tr><td class="paramname">width</td><td>The width of the canvas and the pages it contains.</td></tr>
    <tr><td class="paramname">height</td><td>The height of the canvas and the pages it contains.</td></tr>
  </table>
  </dd>
</dl>

<p class="definition">Definition at line <a class="el" href="_s_k_multi_layer_render_canvas_8cs_source.html#l00082">82</a> of file <a class="el" href="_s_k_multi_layer_render_canvas_8cs_source.html">SKMultiLayerRenderCanvas.cs</a>.</p>

</div>
</div>
<a id="a9a5fb8009c0eacdcfea4667f2dd21f1e" name="a9a5fb8009c0eacdcfea4667f2dd21f1e"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a9a5fb8009c0eacdcfea4667f2dd21f1e">&#9670;&#160;</a></span>SKMultiLayerRenderCanvas() <span class="overload">[2/3]</span></h2>

<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">VectSharp.Canvas.SKMultiLayerRenderCanvas.SKMultiLayerRenderCanvas </td>
          <td>(</td>
          <td class="paramtype">IEnumerable&lt; <a class="el" href="class_vect_sharp_1_1_page.html">Page</a> &gt;&#160;</td>
          <td class="paramname"><em>layers</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype"><a class="el" href="struct_vect_sharp_1_1_colour.html">Colour</a>&#160;</td>
          <td class="paramname"><em>backgroundColour</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">double&#160;</td>
          <td class="paramname"><em>width</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">double&#160;</td>
          <td class="paramname"><em>height</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">List&lt; <a class="el" href="class_vect_sharp_1_1_canvas_1_1_s_k_render_action.html">SKRenderAction</a> &gt;&#160;</td>
          <td class="paramname"><em>layerTransforms</em> = <code>null</code>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
</div><div class="memdoc">

<p>Create a new <a class="el" href="class_vect_sharp_1_1_canvas_1_1_s_k_multi_layer_render_canvas.html" title="Represents a multi-threaded, triple-buffered canvas on which the image is drawn using SkiaSharp.">SKMultiLayerRenderCanvas</a> from a collection of <a class="el" href="class_vect_sharp_1_1_page.html" title="Represents a Graphics object with a width and height.">Page</a>s, each representing a layer.  </p>
<dl class="params"><dt>Parameters</dt><dd>
  <table class="params">
    <tr><td class="paramname">layers</td><td>The contents of the canvas. Each element in this list represents a layer.</td></tr>
    <tr><td class="paramname">layerTransforms</td><td>A list of transforms associated with each layer. This list should contain the same number of elements as <em>layers</em> . This is useful to manipulate the position of each layer individually. If this is null, an identity transform is applied to each layer.</td></tr>
    <tr><td class="paramname">backgroundColour</td><td>The background colour of the canvas.</td></tr>
    <tr><td class="paramname">width</td><td>The width of the canvas and the pages it contains.</td></tr>
    <tr><td class="paramname">height</td><td>The height of the canvas and the pages it contains.</td></tr>
  </table>
  </dd>
</dl>

<p class="definition">Definition at line <a class="el" href="_s_k_multi_layer_render_canvas_8cs_source.html#l00092">92</a> of file <a class="el" href="_s_k_multi_layer_render_canvas_8cs_source.html">SKMultiLayerRenderCanvas.cs</a>.</p>

</div>
</div>
<a id="a777e28bd741c4a2f18f223f7cc628bbf" name="a777e28bd741c4a2f18f223f7cc628bbf"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a777e28bd741c4a2f18f223f7cc628bbf">&#9670;&#160;</a></span>SKMultiLayerRenderCanvas() <span class="overload">[3/3]</span></h2>

<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">VectSharp.Canvas.SKMultiLayerRenderCanvas.SKMultiLayerRenderCanvas </td>
          <td>(</td>
          <td class="paramtype">List&lt; <a class="el" href="class_vect_sharp_1_1_canvas_1_1_s_k_render_context.html">SKRenderContext</a> &gt;&#160;</td>
          <td class="paramname"><em>contents</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">List&lt; <a class="el" href="class_vect_sharp_1_1_canvas_1_1_s_k_render_action.html">SKRenderAction</a> &gt;&#160;</td>
          <td class="paramname"><em>contentTransforms</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype"><a class="el" href="struct_vect_sharp_1_1_colour.html">Colour</a>&#160;</td>
          <td class="paramname"><em>backgroundColour</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">double&#160;</td>
          <td class="paramname"><em>width</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">double&#160;</td>
          <td class="paramname"><em>height</em>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
</div><div class="memdoc">

<p>Create a new <a class="el" href="class_vect_sharp_1_1_canvas_1_1_s_k_multi_layer_render_canvas.html" title="Represents a multi-threaded, triple-buffered canvas on which the image is drawn using SkiaSharp.">SKMultiLayerRenderCanvas</a> from a list of SKRenderContexts, each representing a layer.  </p>
<dl class="params"><dt>Parameters</dt><dd>
  <table class="params">
    <tr><td class="paramname">contents</td><td>The contents of the canvas. Each element in this list represents a layer. A <a class="el" href="class_vect_sharp_1_1_page.html" title="Represents a Graphics object with a width and height.">Page</a> can be converded to a <a class="el" href="class_vect_sharp_1_1_canvas_1_1_s_k_render_context.html" title="Represents a page that has been prepared for fast rendering using the SkiaSharp renderer.">SKRenderContext</a> through the CopyToSKRenderContext method.</td></tr>
    <tr><td class="paramname">contentTransforms</td><td>A list of transforms associated with each layer. This list should contain the same number of elements as <em>contents</em> . This is useful to manipulate the position of each layer individually.</td></tr>
    <tr><td class="paramname">backgroundColour</td><td>The background colour of the canvas.</td></tr>
    <tr><td class="paramname">width</td><td>The width of the canvas and the page it contains.</td></tr>
    <tr><td class="paramname">height</td><td>The height of the canvas and the page it contains.</td></tr>
  </table>
  </dd>
</dl>

<p class="definition">Definition at line <a class="el" href="_s_k_multi_layer_render_canvas_8cs_source.html#l00125">125</a> of file <a class="el" href="_s_k_multi_layer_render_canvas_8cs_source.html">SKMultiLayerRenderCanvas.cs</a>.</p>

</div>
</div>
<h2 class="groupheader">Member Function Documentation</h2>
<a id="a8bc4e8c89dcb02f5beaa0a18c4c94bb5" name="a8bc4e8c89dcb02f5beaa0a18c4c94bb5"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a8bc4e8c89dcb02f5beaa0a18c4c94bb5">&#9670;&#160;</a></span>AddLayer()</h2>

<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">void VectSharp.Canvas.SKMultiLayerRenderCanvas.AddLayer </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="class_vect_sharp_1_1_canvas_1_1_s_k_render_context.html">SKRenderContext</a>&#160;</td>
          <td class="paramname"><em>newContent</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype"><a class="el" href="class_vect_sharp_1_1_canvas_1_1_s_k_render_action.html">SKRenderAction</a>&#160;</td>
          <td class="paramname"><em>newTransform</em>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
</div><div class="memdoc">

<p>Add a new layer to the image.  </p>
<dl class="params"><dt>Parameters</dt><dd>
  <table class="params">
    <tr><td class="paramname">newContent</td><td>The contents of the new layer. A <a class="el" href="class_vect_sharp_1_1_page.html" title="Represents a Graphics object with a width and height.">Page</a> can be converded to a <a class="el" href="class_vect_sharp_1_1_canvas_1_1_s_k_render_context.html" title="Represents a page that has been prepared for fast rendering using the SkiaSharp renderer.">SKRenderContext</a> through the CopyToSKRenderContext method.</td></tr>
    <tr><td class="paramname">newTransform</td><td>The transform for the new layer.</td></tr>
  </table>
  </dd>
</dl>

<p class="definition">Definition at line <a class="el" href="_s_k_multi_layer_render_canvas_8cs_source.html#l00256">256</a> of file <a class="el" href="_s_k_multi_layer_render_canvas_8cs_source.html">SKMultiLayerRenderCanvas.cs</a>.</p>

</div>
</div>
<a id="ab28d9c9dc4156695119b583fcffcc3da" name="ab28d9c9dc4156695119b583fcffcc3da"></a>
<h2 class="memtitle"><span class="permalink"><a href="#ab28d9c9dc4156695119b583fcffcc3da">&#9670;&#160;</a></span>Dispose()</h2>

<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">void VectSharp.Canvas.SKMultiLayerRenderCanvas.Dispose </td>
          <td>(</td>
          <td class="paramname"></td><td>)</td>
          <td></td>
        </tr>
      </table>
</div><div class="memdoc">

<p></p>

<p class="definition">Definition at line <a class="el" href="_s_k_multi_layer_render_canvas_8cs_source.html#l01134">1134</a> of file <a class="el" href="_s_k_multi_layer_render_canvas_8cs_source.html">SKMultiLayerRenderCanvas.cs</a>.</p>

</div>
</div>
<a id="a6aaf18105ecb0af2b80c52f576d224d9" name="a6aaf18105ecb0af2b80c52f576d224d9"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a6aaf18105ecb0af2b80c52f576d224d9">&#9670;&#160;</a></span>InsertLayer()</h2>

<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">void VectSharp.Canvas.SKMultiLayerRenderCanvas.InsertLayer </td>
          <td>(</td>
          <td class="paramtype">int&#160;</td>
          <td class="paramname"><em>index</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype"><a class="el" href="class_vect_sharp_1_1_canvas_1_1_s_k_render_context.html">SKRenderContext</a>&#160;</td>
          <td class="paramname"><em>newContent</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype"><a class="el" href="class_vect_sharp_1_1_canvas_1_1_s_k_render_action.html">SKRenderAction</a>&#160;</td>
          <td class="paramname"><em>newTransform</em>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
</div><div class="memdoc">

<p>Insert a new layer at the specified index.  </p>
<dl class="params"><dt>Parameters</dt><dd>
  <table class="params">
    <tr><td class="paramname">index</td><td>The position at which the new layer will be inserted.</td></tr>
    <tr><td class="paramname">newContent</td><td>The contents of the new layer.</td></tr>
    <tr><td class="paramname">newTransform</td><td>The transform for the new layer.</td></tr>
  </table>
  </dd>
</dl>

<p class="definition">Definition at line <a class="el" href="_s_k_multi_layer_render_canvas_8cs_source.html#l00289">289</a> of file <a class="el" href="_s_k_multi_layer_render_canvas_8cs_source.html">SKMultiLayerRenderCanvas.cs</a>.</p>

</div>
</div>
<a id="a1701ed51368b6dc5bb771b5ea858e4ee" name="a1701ed51368b6dc5bb771b5ea858e4ee"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a1701ed51368b6dc5bb771b5ea858e4ee">&#9670;&#160;</a></span>InvalidateDirty()</h2>

<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">void VectSharp.Canvas.SKMultiLayerRenderCanvas.InvalidateDirty </td>
          <td>(</td>
          <td class="paramname"></td><td>)</td>
          <td></td>
        </tr>
      </table>
</div><div class="memdoc">

<p>Invalidate the contents of the canvas, forcing it to redraw itself.  </p>

<p class="definition">Definition at line <a class="el" href="_s_k_multi_layer_render_canvas_8cs_source.html#l00943">943</a> of file <a class="el" href="_s_k_multi_layer_render_canvas_8cs_source.html">SKMultiLayerRenderCanvas.cs</a>.</p>

</div>
</div>
<a id="a28e9f0cfe4fa1286ac9b90b8ae33b2d2" name="a28e9f0cfe4fa1286ac9b90b8ae33b2d2"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a28e9f0cfe4fa1286ac9b90b8ae33b2d2">&#9670;&#160;</a></span>InvalidateZIndex()</h2>

<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">void VectSharp.Canvas.SKMultiLayerRenderCanvas.InvalidateZIndex </td>
          <td>(</td>
          <td class="paramname"></td><td>)</td>
          <td></td>
        </tr>
      </table>
</div><div class="memdoc">

<p>Invalidate the contents of the canvas, specifying that the order of the layers has changed.  </p>

<p class="definition">Definition at line <a class="el" href="_s_k_multi_layer_render_canvas_8cs_source.html#l00952">952</a> of file <a class="el" href="_s_k_multi_layer_render_canvas_8cs_source.html">SKMultiLayerRenderCanvas.cs</a>.</p>

</div>
</div>
<a id="a65033e30e6cb9cf268c71f7a9949770e" name="a65033e30e6cb9cf268c71f7a9949770e"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a65033e30e6cb9cf268c71f7a9949770e">&#9670;&#160;</a></span>MoveLayer()</h2>

<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">void VectSharp.Canvas.SKMultiLayerRenderCanvas.MoveLayer </td>
          <td>(</td>
          <td class="paramtype">int&#160;</td>
          <td class="paramname"><em>oldIndex</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">int&#160;</td>
          <td class="paramname"><em>newIndex</em>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
</div><div class="memdoc">

<p>Move the specified layer to the specified position, shifting all other layers as necessary.  </p>
<dl class="params"><dt>Parameters</dt><dd>
  <table class="params">
    <tr><td class="paramname">oldIndex</td><td>The current index of the layer to move.</td></tr>
    <tr><td class="paramname">newIndex</td><td>The final index of the layer. Layers after this will be shifted by 1 in order to accommodate the moved layer.</td></tr>
  </table>
  </dd>
</dl>

<p class="definition">Definition at line <a class="el" href="_s_k_multi_layer_render_canvas_8cs_source.html#l00369">369</a> of file <a class="el" href="_s_k_multi_layer_render_canvas_8cs_source.html">SKMultiLayerRenderCanvas.cs</a>.</p>

</div>
</div>
<a id="a474ef13fd5ff3c54f679836ffd45af95" name="a474ef13fd5ff3c54f679836ffd45af95"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a474ef13fd5ff3c54f679836ffd45af95">&#9670;&#160;</a></span>RemoveLayer()</h2>

<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">void VectSharp.Canvas.SKMultiLayerRenderCanvas.RemoveLayer </td>
          <td>(</td>
          <td class="paramtype">int&#160;</td>
          <td class="paramname"><em>layer</em></td><td>)</td>
          <td></td>
        </tr>
      </table>
</div><div class="memdoc">

<p>Remove the specified layer from the image.  </p>
<dl class="params"><dt>Parameters</dt><dd>
  <table class="params">
    <tr><td class="paramname">layer</td><td>The index of the layer to remove.</td></tr>
  </table>
  </dd>
</dl>

<p class="definition">Definition at line <a class="el" href="_s_k_multi_layer_render_canvas_8cs_source.html#l00320">320</a> of file <a class="el" href="_s_k_multi_layer_render_canvas_8cs_source.html">SKMultiLayerRenderCanvas.cs</a>.</p>

</div>
</div>
<a id="a6bc35a6235e3f24da0d2c27d5868c587" name="a6bc35a6235e3f24da0d2c27d5868c587"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a6bc35a6235e3f24da0d2c27d5868c587">&#9670;&#160;</a></span>Render()</h2>

<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">override void VectSharp.Canvas.SKMultiLayerRenderCanvas.Render </td>
          <td>(</td>
          <td class="paramtype">DrawingContext&#160;</td>
          <td class="paramname"><em>context</em></td><td>)</td>
          <td></td>
        </tr>
      </table>
</div><div class="memdoc">

<p></p>

<p class="definition">Definition at line <a class="el" href="_s_k_multi_layer_render_canvas_8cs_source.html#l00977">977</a> of file <a class="el" href="_s_k_multi_layer_render_canvas_8cs_source.html">SKMultiLayerRenderCanvas.cs</a>.</p>

</div>
</div>
<a id="a4ca16a4f659a0fd5411c3d713aab4b4d" name="a4ca16a4f659a0fd5411c3d713aab4b4d"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a4ca16a4f659a0fd5411c3d713aab4b4d">&#9670;&#160;</a></span>RenderAtResolution()</h2>

<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">RenderTargetBitmap VectSharp.Canvas.SKMultiLayerRenderCanvas.RenderAtResolution </td>
          <td>(</td>
          <td class="paramtype">int&#160;</td>
          <td class="paramname"><em>width</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">int&#160;</td>
          <td class="paramname"><em>height</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">SKColor?&#160;</td>
          <td class="paramname"><em>background</em> = <code>null</code>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
</div><div class="memdoc">

<p>Render the image to a bitmap at the specified resolution.  </p>
<dl class="params"><dt>Parameters</dt><dd>
  <table class="params">
    <tr><td class="paramname">width</td><td>The width of the rendered image. Note that the actual width of the returned image might be lower than this, depending on the aspect ratio of the image.</td></tr>
    <tr><td class="paramname">height</td><td>The height of the rendered image. Note that the actual height of the returned image might be lower than this, depending on the aspect ratio of the image.</td></tr>
    <tr><td class="paramname">background</td><td>The background colour for the image. If this is <code>null</code>, the current background colour is used.</td></tr>
  </table>
  </dd>
</dl>
<dl class="section return"><dt>Returns</dt><dd>A RenderTargetBitmap containing the image rendered at the specified resolution.</dd></dl>

<p class="definition">Definition at line <a class="el" href="_s_k_multi_layer_render_canvas_8cs_source.html#l00705">705</a> of file <a class="el" href="_s_k_multi_layer_render_canvas_8cs_source.html">SKMultiLayerRenderCanvas.cs</a>.</p>

</div>
</div>
<a id="ad13a708bdb0b9a7d533f78b8eb931260" name="ad13a708bdb0b9a7d533f78b8eb931260"></a>
<h2 class="memtitle"><span class="permalink"><a href="#ad13a708bdb0b9a7d533f78b8eb931260">&#9670;&#160;</a></span>SwitchLayers()</h2>

<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">void VectSharp.Canvas.SKMultiLayerRenderCanvas.SwitchLayers </td>
          <td>(</td>
          <td class="paramtype">int&#160;</td>
          <td class="paramname"><em>layer1</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">int&#160;</td>
          <td class="paramname"><em>layer2</em>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
</div><div class="memdoc">

<p>Switch the position of the two specified layers.  </p>
<dl class="params"><dt>Parameters</dt><dd>
  <table class="params">
    <tr><td class="paramname">layer1</td><td>The index of the first layer to switch.</td></tr>
    <tr><td class="paramname">layer2</td><td>The index of the second layer to switch.</td></tr>
  </table>
  </dd>
</dl>

<p class="definition">Definition at line <a class="el" href="_s_k_multi_layer_render_canvas_8cs_source.html#l00344">344</a> of file <a class="el" href="_s_k_multi_layer_render_canvas_8cs_source.html">SKMultiLayerRenderCanvas.cs</a>.</p>

</div>
</div>
<a id="a2afc05715ff7c9e4cb273943d70939ed" name="a2afc05715ff7c9e4cb273943d70939ed"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a2afc05715ff7c9e4cb273943d70939ed">&#9670;&#160;</a></span>UpdateLayer()</h2>

<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">void VectSharp.Canvas.SKMultiLayerRenderCanvas.UpdateLayer </td>
          <td>(</td>
          <td class="paramtype">int&#160;</td>
          <td class="paramname"><em>layer</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype"><a class="el" href="class_vect_sharp_1_1_canvas_1_1_s_k_render_context.html">SKRenderContext</a>&#160;</td>
          <td class="paramname"><em>newContent</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype"><a class="el" href="class_vect_sharp_1_1_canvas_1_1_s_k_render_action.html">SKRenderAction</a>&#160;</td>
          <td class="paramname"><em>newTransform</em>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
</div><div class="memdoc">

<p>Replace a single layer with the specified content.  </p>
<dl class="params"><dt>Parameters</dt><dd>
  <table class="params">
    <tr><td class="paramname">layer</td><td>The index of the layer to replace.</td></tr>
    <tr><td class="paramname">newContent</td><td>The new contents of the layer. A <a class="el" href="class_vect_sharp_1_1_page.html" title="Represents a Graphics object with a width and height.">Page</a> can be converded to a <a class="el" href="class_vect_sharp_1_1_canvas_1_1_s_k_render_context.html" title="Represents a page that has been prepared for fast rendering using the SkiaSharp renderer.">SKRenderContext</a> through the CopyToSKRenderContext method.</td></tr>
    <tr><td class="paramname">newTransform</td><td>The new transform for the layer.</td></tr>
  </table>
  </dd>
</dl>

<p class="definition">Definition at line <a class="el" href="_s_k_multi_layer_render_canvas_8cs_source.html#l00224">224</a> of file <a class="el" href="_s_k_multi_layer_render_canvas_8cs_source.html">SKMultiLayerRenderCanvas.cs</a>.</p>

</div>
</div>
<a id="a84c5f8dc4c4351723414e55fa01eafe7" name="a84c5f8dc4c4351723414e55fa01eafe7"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a84c5f8dc4c4351723414e55fa01eafe7">&#9670;&#160;</a></span>UpdateWith()</h2>

<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">void VectSharp.Canvas.SKMultiLayerRenderCanvas.UpdateWith </td>
          <td>(</td>
          <td class="paramtype">List&lt; <a class="el" href="class_vect_sharp_1_1_canvas_1_1_s_k_render_context.html">SKRenderContext</a> &gt;&#160;</td>
          <td class="paramname"><em>contents</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">List&lt; <a class="el" href="class_vect_sharp_1_1_canvas_1_1_s_k_render_action.html">SKRenderAction</a> &gt;&#160;</td>
          <td class="paramname"><em>contentTransforms</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype"><a class="el" href="struct_vect_sharp_1_1_colour.html">Colour</a>&#160;</td>
          <td class="paramname"><em>backgroundColour</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">double&#160;</td>
          <td class="paramname"><em>width</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">double&#160;</td>
          <td class="paramname"><em>height</em>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
</div><div class="memdoc">

<p>Replace the contents of the <a class="el" href="class_vect_sharp_1_1_canvas_1_1_s_k_multi_layer_render_canvas.html" title="Represents a multi-threaded, triple-buffered canvas on which the image is drawn using SkiaSharp.">SKMultiLayerRenderCanvas</a> with the specified layers.  </p>
<dl class="params"><dt>Parameters</dt><dd>
  <table class="params">
    <tr><td class="paramname">contents</td><td>The contents of the canvas. Each element in this list represents a layer. A <a class="el" href="class_vect_sharp_1_1_page.html" title="Represents a Graphics object with a width and height.">Page</a> can be converded to a <a class="el" href="class_vect_sharp_1_1_canvas_1_1_s_k_render_context.html" title="Represents a page that has been prepared for fast rendering using the SkiaSharp renderer.">SKRenderContext</a> through the CopyToSKRenderContext method.</td></tr>
    <tr><td class="paramname">contentTransforms</td><td>A list of transforms associated with each layer. This list should contain the same number of elements as <em>contents</em> . This is useful to manipulate the position of each layer individually.</td></tr>
    <tr><td class="paramname">backgroundColour</td><td>The background colour of the canvas.</td></tr>
    <tr><td class="paramname">width</td><td>The width of the canvas and the page it contains.</td></tr>
    <tr><td class="paramname">height</td><td>The height of the canvas and the page it contains.</td></tr>
  </table>
  </dd>
</dl>

<p class="definition">Definition at line <a class="el" href="_s_k_multi_layer_render_canvas_8cs_source.html#l00146">146</a> of file <a class="el" href="_s_k_multi_layer_render_canvas_8cs_source.html">SKMultiLayerRenderCanvas.cs</a>.</p>

</div>
</div>
<h2 class="groupheader">Member Data Documentation</h2>
<a id="aa8cabc258828463f73b9d90612d9abee" name="aa8cabc258828463f73b9d90612d9abee"></a>
<h2 class="memtitle"><span class="permalink"><a href="#aa8cabc258828463f73b9d90612d9abee">&#9670;&#160;</a></span>LayerTransforms</h2>

<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">List&lt;<a class="el" href="class_vect_sharp_1_1_canvas_1_1_s_k_render_action.html">SKRenderAction</a>&gt; VectSharp.Canvas.SKMultiLayerRenderCanvas.LayerTransforms</td>
        </tr>
      </table>
</div><div class="memdoc">

<p>The list of transforms associated with each layer.  </p>

<p class="definition">Definition at line <a class="el" href="_s_k_multi_layer_render_canvas_8cs_source.html#l00069">69</a> of file <a class="el" href="_s_k_multi_layer_render_canvas_8cs_source.html">SKMultiLayerRenderCanvas.cs</a>.</p>

</div>
</div>
<a id="aab220bda90e3a0c36f27b87bfbeff6f0" name="aab220bda90e3a0c36f27b87bfbeff6f0"></a>
<h2 class="memtitle"><span class="permalink"><a href="#aab220bda90e3a0c36f27b87bfbeff6f0">&#9670;&#160;</a></span>RenderActions</h2>

<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">List&lt;List&lt;<a class="el" href="class_vect_sharp_1_1_canvas_1_1_s_k_render_action.html">SKRenderAction</a>&gt; &gt; VectSharp.Canvas.SKMultiLayerRenderCanvas.RenderActions</td>
        </tr>
      </table>
</div><div class="memdoc">

<p>The list of render actions. Each element in this list is itself a list, containing the actions that correspond to a layer in the image.  </p>

<p class="definition">Definition at line <a class="el" href="_s_k_multi_layer_render_canvas_8cs_source.html#l00064">64</a> of file <a class="el" href="_s_k_multi_layer_render_canvas_8cs_source.html">SKMultiLayerRenderCanvas.cs</a>.</p>

</div>
</div>
<a id="a7ff6c67552e1715308850a5bba174941" name="a7ff6c67552e1715308850a5bba174941"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a7ff6c67552e1715308850a5bba174941">&#9670;&#160;</a></span>RenderLock</h2>

<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">object VectSharp.Canvas.SKMultiLayerRenderCanvas.RenderLock = new object()</td>
        </tr>
      </table>
</div><div class="memdoc">

<p>A lock for the rendering loop. The public methods of this class already lock on this, but you may need it if you want to directly manipulate the contents of the canvas.  </p>

<p class="definition">Definition at line <a class="el" href="_s_k_multi_layer_render_canvas_8cs_source.html#l00696">696</a> of file <a class="el" href="_s_k_multi_layer_render_canvas_8cs_source.html">SKMultiLayerRenderCanvas.cs</a>.</p>

</div>
</div>
<h2 class="groupheader">Property Documentation</h2>
<a id="a477d90bbd72a0656f8b05cb436ef2e91" name="a477d90bbd72a0656f8b05cb436ef2e91"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a477d90bbd72a0656f8b05cb436ef2e91">&#9670;&#160;</a></span>ClipMargin</h2>

<div class="memitem">
<div class="memproto">
<table class="mlabels">
  <tr>
  <td class="mlabels-left">
      <table class="memname">
        <tr>
          <td class="memname">RelativePoint VectSharp.Canvas.SKMultiLayerRenderCanvas.ClipMargin = new RelativePoint(0, 0, RelativeUnit.Absolute)</td>
        </tr>
      </table>
  </td>
  <td class="mlabels-right">
<span class="mlabels"><span class="mlabel">get</span><span class="mlabel">set</span></span>  </td>
  </tr>
</table>
</div><div class="memdoc">

<p>Defines an overdraw margin for the clipping area. Set this to a larger value if quickly moving the canvas around (e.g. in a ZoomBorder) causes the edge of the image to disappear for a few milliseconds and that annoys you. If RelativePoint.Unit is set to RelativeUnit.Absolute, the value corresponds to units on the <a class="el" href="class_vect_sharp_1_1_page.html" title="Represents a Graphics object with a width and height.">VectSharp.Page</a>; if it is set to RelativeUnit.Relative, it corresponds to a proportion of the visible area.  </p>

<p class="definition">Definition at line <a class="el" href="_s_k_multi_layer_render_canvas_8cs_source.html#l00059">59</a> of file <a class="el" href="_s_k_multi_layer_render_canvas_8cs_source.html">SKMultiLayerRenderCanvas.cs</a>.</p>

</div>
</div>
<a id="aabe2d24ee767ba8e7bac57f98d88a0ef" name="aabe2d24ee767ba8e7bac57f98d88a0ef"></a>
<h2 class="memtitle"><span class="permalink"><a href="#aabe2d24ee767ba8e7bac57f98d88a0ef">&#9670;&#160;</a></span>PageHeight</h2>

<div class="memitem">
<div class="memproto">
<table class="mlabels">
  <tr>
  <td class="mlabels-left">
      <table class="memname">
        <tr>
          <td class="memname">double VectSharp.Canvas.SKMultiLayerRenderCanvas.PageHeight</td>
        </tr>
      </table>
  </td>
  <td class="mlabels-right">
<span class="mlabels"><span class="mlabel">get</span><span class="mlabel">set</span></span>  </td>
  </tr>
</table>
</div><div class="memdoc">

<p>The height of the page that is rendered on this canvas.  </p>

<p class="definition">Definition at line <a class="el" href="_s_k_multi_layer_render_canvas_8cs_source.html#l00049">49</a> of file <a class="el" href="_s_k_multi_layer_render_canvas_8cs_source.html">SKMultiLayerRenderCanvas.cs</a>.</p>

</div>
</div>
<a id="a4fd73dc712c4f90ed8e00412eb50bdd2" name="a4fd73dc712c4f90ed8e00412eb50bdd2"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a4fd73dc712c4f90ed8e00412eb50bdd2">&#9670;&#160;</a></span>PageWidth</h2>

<div class="memitem">
<div class="memproto">
<table class="mlabels">
  <tr>
  <td class="mlabels-left">
      <table class="memname">
        <tr>
          <td class="memname">double VectSharp.Canvas.SKMultiLayerRenderCanvas.PageWidth</td>
        </tr>
      </table>
  </td>
  <td class="mlabels-right">
<span class="mlabels"><span class="mlabel">get</span><span class="mlabel">set</span></span>  </td>
  </tr>
</table>
</div><div class="memdoc">

<p>The width of the page that is rendered on this canvas.  </p>

<p class="definition">Definition at line <a class="el" href="_s_k_multi_layer_render_canvas_8cs_source.html#l00044">44</a> of file <a class="el" href="_s_k_multi_layer_render_canvas_8cs_source.html">SKMultiLayerRenderCanvas.cs</a>.</p>

</div>
</div>
<hr/>The documentation for this class was generated from the following file:<ul>
<li>VectSharp.Canvas/<a class="el" href="_s_k_multi_layer_render_canvas_8cs_source.html">SKMultiLayerRenderCanvas.cs</a></li>
</ul>
</div><!-- contents -->
</div><!-- doc-content -->
<!-- start footer part -->
<div id="nav-path" class="navpath"><!-- id is needed for treeview function! -->
  <ul>
    <li class="navelem"><a class="el" href="namespace_vect_sharp.html">VectSharp</a></li><li class="navelem"><a class="el" href="namespace_vect_sharp_1_1_canvas.html">Canvas</a></li><li class="navelem"><a class="el" href="class_vect_sharp_1_1_canvas_1_1_s_k_multi_layer_render_canvas.html">SKMultiLayerRenderCanvas</a></li>
    <li class="footer">Generated by <a href="https://www.doxygen.org/index.html"><img class="footer" src="doxygen.svg" width="104" height="31" alt="doxygen"/></a> 1.9.5 </li>
  </ul>
</div>
</body>
</html>
